home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #4 / Amiga Plus CD - 2000 - No. 4.iso / Tools / Treiber / Misc / Mroocheck / FreeWheel / Source / WheelMouse.h < prev    next >
C/C++ Source or Header  |  2000-04-20  |  2KB  |  69 lines

  1.  
  2. #include <intuition/intuition.h>
  3. #include <devices/inputevent.h>
  4.  
  5. extern char *WindowModeNames[];
  6. extern char *ClickModeNames[];
  7. extern char *ClickRollModeNames[];
  8. extern char *DoubleClickModeNames[];
  9.  
  10. enum WindowModes {OverWindow,ActiveWindow};
  11.  
  12. enum ClickModes {ClickIgnore,ClickShift,ClickShiftClick,
  13.                  ClickToggleLMB,ClickMoveToScroll,
  14.                  ClickMoveScrollToggle,ClickCycleScreens};
  15.  
  16. enum ClickRollModes {ClickRollIgnore,ClickRollDepthArrange,ClickRollHorizontalScroll};
  17.  
  18. enum DoubleClickModes {DClickIgnore,DClickCycleScreens,DClickSwapAxis};
  19.  
  20.  
  21. struct ButtonData
  22. {
  23.   enum ClickModes ClickMode;
  24.   enum ClickRollModes ClickRollMode;
  25.   enum DoubleClickModes DoubleClickMode;
  26.   char **ClickModeNames;
  27.   char **ClickRollModeNames;
  28.   char **DoubleClickModeNames;
  29.   BOOL State;
  30.   long Count,Secs,Microsecs;  /* Used for double-click detection */
  31.   BOOL LMBToggle,ScrollToggle,AxisToggle;
  32. };
  33.  
  34.  
  35. struct WheelMouseContext
  36. {
  37.   void (*Dispose)(struct WheelMouseContext *wm);
  38.   BOOL (*Handle)(struct WheelMouseContext *wm,unsigned long signals);
  39.   int ScrollX,ScrollY;
  40.   int FakeX,FakeY;
  41.  
  42.   enum WindowModes WindowMode;
  43.   char **WindowModeNames;
  44.   struct ButtonData MidButton,FourthButton;
  45.   int MouseSpeedX,MouseSpeedY;
  46.   int ScrollSpeedX,ScrollSpeedY;
  47.   int FakeScrollSpeed;
  48.   BOOL ClickToFront,ClickToBack;
  49.   BOOL NudgeProp,ForgeRawKey,RawKeyPage;
  50.   int PageThreshold;
  51.  
  52.   struct Task *MainTask;
  53.   unsigned long Signals;
  54.   int SigBit;
  55.   struct MsgPort *ReplyPort,*IOPort;
  56.   struct IOStdReq *IOReq;
  57.  
  58.   struct Window *Window;
  59.   struct Gadget *Gadget;
  60.   struct ExtIntuiMessage Msg1;
  61.   unsigned long pad11,pad12,pad13,pad14; /* struct might be extended further! */
  62.   struct ExtIntuiMessage Msg2;
  63.   unsigned long pad21,pad22,pad23,pad24;
  64.   struct InputEvent Event;
  65. };
  66.  
  67. struct WheelMouseContext *WheelMouse_Create();
  68.  
  69.